1. Field of the Invention
The present invention relates to static code analysis in general and more particularly to static code analysis for packaged application customization.
2. Description of the Related Art
The traditional computing marketplace provides for pre-packaged computing solutions to various personal and industrial problems. Core pre-packaged computing solutions address the most basic industrial needs, including back office accounting, order entry, inventory and billing. Other advanced pre-packaged computing solutions provide for customer relationship management and enterprise resource management. To the extent that a pre-packaged computing solution does not address the particular needs of an end user, historically the end user would have simply developed a customized solution from scratch using either in-house or contracted software development expertise. Though it is an advantage for the enterprise to enjoy a computing solution developed to specifically address the unique qualities of the enterprise, to do so comes at great cost in terms of required human resources. Yet the enterprise often cannot afford to “fit” a pre-packaged computing solution to the day-to-day business processes of the enterprise.
To address the quandary faced by many in respect to selecting either a pre-packaged computing solution, or developing a completely customized computing solution, customizable pre-packaged computing solutions have been successfully marketed and deployed into the enterprise. In a customizable pre-packaged computing solution, a complete enterprise solution is provided to the end user requiring some modest configuration before deployment. Out of the box, the pre-packaged computing solution can meet many of the needs of the end user. To support the necessity of modification of some of the functionality of the customizable pre-packaged computing solution, the pre-packaged computing solution provides a facility for linking custom program code to the underling application, as well as customized user interface elements and customized data tables. A prime example of a customizable pre-packaged computing solution is the SAP R/3™ computer program product manufactured by SAP A.G. of Walldorf, Federal Republic of Germany.
Once a customizable pre-packaged computing solution has been fully customized to meet the needs of the end user, maintaining the solution can be difficult. In particular, as updates and upgrades to the underlying pre-packaged computing solution become available, customizations must be monitored and occasionally modified to ensure compatibility with the upgrade. Further, as new customizations and/or configuration changes are proposed, those customizations must maintain compatibility with both the underlying pre-packaged computing solution and any inter-dependent customized code. As such, prior to upgrading an installation or consolidating multiple installations of a customizable pre-packaged solution, an analysis phase must be performed in order to determine the shear quantity of customized program code and customized data present, the dependencies between customized program code, tables, and interfaces, the likely effect of changes upon a new system instance, the way in which the program data has been modified and the requisite mapping of the data between systems.
As part of the updating process of a pre-packaged computing solution, a business consultant in addition to an information technologist must first manually discover which portions of customized code for a business process of interest relate to a business process of interest in a business process hierarchy (BPH). Further, an understanding must be developed of the dependencies amongst the manually discovered portions of customized code. Developing an understanding of the dependencies amongst manually discovered portions of customized code can be difficult, however, in view of the vast number of programs, implemented and referenced objects, data tables, and transactions present for an implementation of a pre-packaged computing solution.